The Internet is a world-wide network of cooperating computer networks. Connected to the Internet are thousands of individual computers, each with a variety of application programs. From a user's point of view, access to the Internet and its services typically are accomplished by invoking a network application program (e.g., a network browser). The network application program acts as an interface between the user and the Internet. Network application programs are typically "client" applications that accept commands from the user and obtain Internet data and services by sending requests to "server" applications on other computers at other locations on the Internet.
There are many types of client network applications known in the art including network browsers such as the Internet Explorer.RTM. by Microsoft Corporation of Redmond, Wash., Netscape Navigator.TM. by Netscape Communications of Mountain View, Calif., and Mosaic.TM. by the National Center for Supercomputer Applications (NCSA) of Champaign-Urbana, Ill. These network browsers send network requests via the File Transfer Protocol (FTP), Simple Mail Transfer Protocol (SMTP), HyperText Transfer Protocol (HTTP), Gopher document protocol and others. The network requests are used to exchange data with computer networks such as the Internet or an intranet.
HTTP is a protocol used to access data on the World Wide Web. The World Wide Web is an information service on the Internet containing electronic documents created in the HyperText Markup Language (HTML). HTML allows embedded "links" or Uniform Resource Locators (URLs) to point to other data or electronic documents, which may be found on the local computer or other, remote Internet or intranet host computers. HTML document links may retrieve the data by use of HTTP, FTP, Gopher, or other Internet application protocols. The Virtual Reality Modeling Language (VRML) is also used to create documents for the World Wide Web. Specifically, VRML is typically used to create three-dimensional graphical information documents. HTML documents are electronic documents that typically contain text, graphical images, animation sequences, audio and video clips, and other information that is displayed by a network browser on a display device for a user.
HTML allows the author of a document to split the information displayed by a network browser into a number of rectangular areas called "frames." HTML frames are created with the HTML &lt;FRAME&gt; and &lt;FRAMESET&gt; tags which are known to those skilled in the art. For more information see Chapter 9, "Designing Tables and Frames" in Web Publishing Unleased, by William Robert Stanek, Sams.Net Publishing, Indianapolis, Ind., 1996. Each frame can then separately display a HTML document or other HTML object (e.g., a photographic image) specified by a separate URL. For example, an author can create multiple frames to display text in one frame, a photographic image in another, and an animated sequence in a third frame. Authors can also specify a frame specifically for the purpose of navigational elements such as graphical toolbars. Clicking on the graphical toolbar frames with a mouse or other pointing device will update the content of other frames displayed.
One problem with HTML frames is that they can only specify a static "tiling" of the display area. Frames are a set of non-overlapping, static rectangles created with very strict layout constraints. This is a very different layout model from which HTML provides. The layout of a document within a frame cannot be changed once the frame is created.
Yet another problem with HTML frames is that arbitrary HTML documents cannot be "nested." When a HTML frame is displayed, a HTML document is used to display HTML information in the frame (e.g., text, images, graphics, etc). The frame behaves like a static "window" which is used by the client network application to display information to a user. If a reference is made (e.g., with a link, URL, reference tag, etc.) to a second HTML document within the first HTML document used to display the HTML frame, the second HTML document is read in and laid out in the HTML frame. The second document layout replaces all of the first document display and layout characteristics in the HTML frame. This prevents an author from nesting any arbitrary HTML document inside another. Without document nesting, a second HTML document cannot be displayed within a first HTML document without overwriting all the layout and display characteristics of the first HTML document. It is often desirable to keep the layout and display characteristics of the first HTML document (e.g., a home page) and display a second "nested" HTML document (e.g., a second or alternate home page) using only a small portion of the display area in the frame used to display the first HTML document. The &lt;FRAME&gt; and &lt;FRAMESET&gt; tags in HTML do not allow arbitrary document nesting. However, the &lt;FRAME&gt; and &lt;FRAMESET&gt; tags do allow some degree of nesting, but the containing document is required to be a &lt;FRAME&gt; document that has restricted layout characteristics. HTML frames do allow a number of documents to be displayed side-by-side, but do not allow overlapping or true nesting of documents. The frame container itself cannot display many of the visual presentation and display content attributes associated used to display a HTML document, as it is limited by strict frame layout constraints.
Yet another problem occurs if an author tries to extend the existing HTML &lt;FRAME&gt; and &lt;FRAMESET&gt; tags to overcome some of the strict frame layout constraints. A "downlevel client" problem occurs when existing HTML tags are extended. A HTML reference tag is extended when attributes or parameters are added to the HTML reference tag that are not a part of the current HTML standard. Older client software (e.g., earlier versions of a network browser) cannot interpret the HTML extensions and will not properly display the extended HTML tags since the older client software was created using the current HTML standard. The browser will typically create an incomplete or garbled display area for a user, or ignore the extensions all together. To prevent improper display of the HTML extensions, an author would have to create and maintain multiple copies of each HTML document, one for each version of every network browser that could be used to display the document. This is an inefficient process and wasteful process, and causes a significant impact for the server computers on which the multiple documents are stored (e.g., wastes significant storage space).
In accordance with an illustrative embodiment of the present invention, the problems associated with existing HTML frames are overcome. A method for formatting a HTML document that allows the nesting of other documents within the HTML document is provided. The method is used to specify one or more nested documents (i.e., other electronic documents) which will be displayed within a main document by inserting a new reference tag into a main electronic document (e.g., a HTML document). The new reference tag is also used to specify the display layout (e.g., aligument, border, width, height, horizontal spacing and vertical spacing) of the nested documents, and the display techniques (e.g., frame border, margin height, margin width, nested document name, and source location after nested document) used for presenting the nested electronic documents within the main document. The method allows the nesting of documents within a main electronic document while maintaining all the layout and presentation capabilities used to display the main electronic document.
The illustrative embodiment of the present invention also includes a method for displaying a main electronic document with nested documents. The method includes parsing the main electronic document with nested documents with a client network application. When the new reference tag to a nested electronic document is encountered, the layout information and display techniques to be used for presenting the nested electronic documents within the main electronic document from the reference tag are determined. The nested electronic document is displayed within the main electronic document using the layout information and display techniques determined from the reference tag.
The new reference tag achieves good "downlevel client" behavior by implementing the reference tag as a "container tag." Everything between a beginning reference and an ending reference tag marker (i.e., the other HTML information tags) is ignored by newer client network applications which can understand the new reference tag. The attributes within the new reference tag contain the nested document information. Older client network applications ignore the new reference tag markers, and instead use any HTML information tags included between the beginning and ending reference tag markers to display information to a user. This allows a document author to construct one document with nested documents for newer client software, which can still be properly displayed by older client software.
The new HTML reference tag provides an extension to the HTML language and gives an electronic document author the ability to embedded nested documents in a HTML document stored on a server computer on the World Wide Web, the Internet, and other computer networks such as intranets.
The foregoing and other features and advantages of the illustrated embodiment of the present invention will be more readily apparent from the following detailed description, which proceeds with reference to the accompanying drawings.